package com.rtx.job.service.impl;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.rtx.api.annotation.DataSourceAnnotation;
import com.rtx.job.bean.po.EdiSql;
import com.rtx.job.mapper.EdiSqlMapper;
import com.rtx.job.service.EdiSqlService;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.List;

@Service
public class EdiSqlServiceImpl extends ServiceImpl<EdiSqlMapper, EdiSql> implements EdiSqlService {

    @DataSourceAnnotation
    @Override
    public List<EdiSql> selectEdiSql(String whseid, Wrapper<EdiSql> wrapper) {
        return this.list(wrapper);
    }

    @Override
    public void selectEdiSqlList(Page<EdiSql> pageParam, EdiSql ediSql) {
        LambdaQueryWrapper<EdiSql> query = Wrappers.lambdaQuery();
        query.orderByAsc(EdiSql::getId);
        if(ediSql != null){
            query.eq(ediSql.getId() != null,EdiSql::getId,ediSql.getId())
                    .eq(StringUtils.hasText(ediSql.getType()),EdiSql::getType,ediSql.getType())
                    .eq(StringUtils.hasText(ediSql.getSqlDescr()),EdiSql::getSqlDescr,ediSql.getSqlDescr())
                    .eq(StringUtils.hasText(ediSql.getNodeName()),EdiSql::getNodeName,ediSql.getNodeName())
                    .eq(ediSql.getParentId() != null,EdiSql::getParentId,ediSql.getParentId());
        }
        baseMapper.selectPage(pageParam,query);
    }
}
